<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
function return_msg($code,$isCodeObj=false){
    $codeMsg = [
        100=>'未登录',
        101=>'没有权限',
        102=>'余额不足',
        200=>'执行成功',
        202=>'注册成功',      //注册成功，前往完善信息
        303=>'参数质检失败',
        404=>'未找到',
        500=>'系统异常',
        //系统错误方法、不对外公开
        501=>'数据库异常连接',
        502=>'控制器或方法异常',
        503=>'代码异常',
        504=>'SQL语句异常',
        666=>'无需支付',
    ];
    return $isCodeObj?$codeMsg:$codeMsg[$code];
}
/**
 * 获取输入数据 支持默认值和过滤
 * @param string    $key 获取的变量名(支持多个获取返回数组格式、不存在null多个使用|隔开)
 * @param mixed     $default 默认值
 * @param string    $filter 过滤方法
 * @return mixed
 * 多个格式化获取时不支持默认值和过滤方法的设置
 */
function I($key = '', $default = null, $filter = ''){
    if (0 === strpos($key, '|') || false===strpos($key, '|')) {
        return input($key,$default,$filter);
    }else{
        $input = input('');
        $param = explode('|', $key);
        $paramData = [];
        foreach ($param  as $v){
            if (isset($input[$v])){
                $paramData[$v] = $input[$v];
            }else{
                $paramData[$v] = null;
            }
        }
        return $paramData;
    }
}


/**
 * 系统非常规MD5加密方法
 * @param  string $str 要加密的字符串
 * @param  string $auth_key 要加密的字符串
 * @return string
 */
function user_md5($str, $auth_key = ''){
    if(!$auth_key){
        $auth_key = config('AUTH_KEY');
    }
    return '' === $str ? '' : md5(sha1($str) . $auth_key);
}

/**
 * 生成token值，客户端保存后用于请求验证
 * @param stirng 用户名
 * @return string
 */
function getToken($name){
    return time().md5(sha1($name).config('TOKEN').mt_rand(100000,999999));
}


/**
 *生成订单编号
 * @param
 * @return
 */
function orderNumber(){
    return date('Ymdhis').str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}

function postCurl($param, $url,$second = 30)
{
    $ch = curl_init();
    //设置超时
    curl_setopt($ch, CURLOPT_TIMEOUT, $second);

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//严格校验
    //设置header
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    //要求结果为字符串且输出到屏幕上
//    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

    //post提交方式
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $param);

    //运行curl
    $data = curl_exec($ch);
    //返回结果
    if ($data) {
        curl_close($ch);
        return $data;
    } else {
        $error = curl_errno($ch);
        curl_close($ch);
        return $error;
    }
}
